package com.beiben.workflow.service;

import com.beiben.workflow.domain.WfCheckLog;
import com.beiben.workflow.domain.WfCheckLogVo;

import java.util.List;

/**
 * 审核日志Service接口
 *
 * @author 熊国强
 * @date 2020-12-17
 */
public interface IWfCheckLogService {
    /**
     * 查询审核日志
     *
     * @param logId 审核日志ID
     * @return 审核日志
     */
    public WfCheckLog selectWfCheckLogById(Long logId);

    /**
     * 查询审核日志列表
     *
     * @param wfCheckLog 审核日志
     * @return 审核日志集合
     */
    public List<WfCheckLogVo> selectWfCheckLogList(WfCheckLog wfCheckLog);

    /**
     * 新增审核日志
     *
     * @param wfCheckLog 审核日志
     * @return 结果
     */
    public int insertWfCheckLog(WfCheckLog wfCheckLog);

    /**
     * 修改审核日志
     *
     * @param wfCheckLog 审核日志
     * @return 结果
     */
    public int updateWfCheckLog(WfCheckLog wfCheckLog);

    /**
     * 批量删除审核日志
     *
     * @param logIds 需要删除的审核日志ID
     * @return 结果
     */
    public int deleteWfCheckLogByIds(Long[] logIds);

    /**
     * 删除审核日志信息
     *
     * @param logId 审核日志ID
     * @return 结果
     */
    public int deleteWfCheckLogById(Long logId);

    /**
     * 审批
     *
     * @param wfCheck
     * @return
     */
    int approve(WfCheckLog wfCheckLog);

    /**
     * 所有工作是否全部完成
     *
     * @param itemId
     * @param checkUserId
     */
    public void isTheProjectWorkCompleted(Long itemId, Long checkUserId);

    /**
     * 所有统计项目节点是否全部完成
     *
     * @param itemId
     * @param checkUserId
     */
    public void isTheProjectNodeCompleted(Long projectId, Long applyUserId);

    /**
     * 根据table_id table_name 审批
     *
     * @param tableId
     * @param tableName
     * @return
     */
    int approve(Long tableId, String tableName);

    /**
     * 根据applyId applyState 修改源表状态
     *
     * @param applyId
     * @param applyState
     * @return
     */
    int updateSourceState(Long applyId, Integer applyState);
}
